#include "msg_queue.h"
#include "func_2th_parcel.h"


int read_msg_queue(){
	struct mymsgbuf buf;
	int msgid;	
	int ret;
    //获取消息队列表示号
	if((msgid = msgget(0x1234, 0666|IPC_CREAT)) < 0)	{
		fprintf(stderr, "open msg %X failed.\n", 0x1234);
		return;
	}
	while(strncmp(buf.ctext, "exit", 4))//当数据有回车时候，结束读取	
	{
		memset(&buf, 0, sizeof(buf));
		while((ret = msgrcv(msgid, &buf, sizeof(buf.ctext), buf.mtype, 0)) < 0)
		{
			if(errno == EINTR)	//当消息队列里此次数据读完，则返回继续读取下一次数据
				continue;
			return;		
		}		
		fprintf(stderr,"Msg:Type=%d,Len=%d,Text:%s",buf.mtype,ret, buf.ctext);
        SEND(ready_array[i].data.fd , buf.ctext , sizeof(buf.ctext) , MSG_NOSIGNAL);//把消息队列中的信息发送给客户端
	}
	return 0;
}
